takes a val from port. Must be called inside a (go ...) block. Will return nil if closed. Will park if nothing is available.